package com.flying.invest.strategy.model;

import com.flying.common.util.Codes;
import com.flying.framework.annotation.Param;
import com.flying.framework.data.Data;
import com.flying.framework.data.DataSerializable;
import com.flying.framework.metadata.Meta;

@SuppressWarnings("serial")
@Meta(id="i_strategy_grid_detail",title="网格策略明细", table="i_strategy_grid_detail", primaryKeys={"detail_id"})
public class StrategyGridDetail extends Data implements DataSerializable {
	public final static String ENTITY_NAME = "i_strategy_grid_detail";
	
	public final static String DETAIL_ID = "detail_id";
	public final static String USER_ID = "user_id";
	public final static String TYPE_ID = "type_id";
	public final static String INVEST_ID = "invest_id";
	public final static String STRATEGY_ID = "strategy_id";
	public final static String NUM = "num";
	public final static String GRID_BUY_PRICE = "grid_buy_price";
	public final static String PRICE_INTERVAL = "price_interval";
	public final static String GRID_SELL_PRICE = "grid_sell_price";
	public final static String GRID_AMOUNT = "grid_amount";
	public final static String GRID_QUANTITY = "grid_quantity";
	public final static String BUY_PRICE = "buy_price";
	public final static String BUY_AMOUNT = "buy_amount";
	public final static String BUY_QUANTITY = "buy_quantity";
	public final static String SELL_PRICE = "sell_price";
	public final static String SELL_AMOUNT = "sell_amount";
	public final static String SELL_QUANTITY = "sell_quantity";

	public final static String TOTAL_BUY_COUNT = "total_buy_count";
	public final static String TOTAL_BUY_AMOUNT = "total_buy_amount";
	public final static String TOTAL_SELL_COUNT = "total_sell_count";
	public final static String TOTAL_SELL_AMOUNT = "total_sell_amount";
	
	
	@Param(value=DETAIL_ID,   required=true,   desc="ID" , generator=Codes.AUTO_INCREMENT)
	private Long detailId;
	
	@Param(value=USER_ID,   required=true,   desc="所属用户" )
	private Long userId;
	
	@Param(value=TYPE_ID,   required=true,   desc="策略类型" )
	private Long typeId;
	
	@Param(value=INVEST_ID,   required=true,   desc="投资项目" )
	private Long investId;
	
	@Param(value=STRATEGY_ID,   required=true,   desc="策略ID" )
	private Long strategyId;
	
	@Param(value=NUM,   required=true,   desc="期数" )
	private Integer num;
	
	@Param(value=GRID_BUY_PRICE,   required=false,   desc="网格买入价格" )
	private Double gridBuyPrice;
	
	@Param(value=PRICE_INTERVAL,   required=true,   desc="网格间隔比例" )
	private Double priceInterval;
	
	@Param(value=GRID_SELL_PRICE,   required=false,   desc="网格卖出价格" )
	private Double gridSellPrice;
	
	@Param(value=GRID_AMOUNT,   required=false,   desc="网格资金" )
	private Double gridAmount;
	
	@Param(value=GRID_QUANTITY,   required=false,   desc="网格数量" )
	private Double gridQuantity;
	
	@Param(value=BUY_PRICE,   required=false,   desc="实际买入价格" )
	private Double buyPrice;
	
	@Param(value=BUY_AMOUNT,   required=false,   desc="实际买入金额" )
	private Double buyAmount;
	
	@Param(value=BUY_QUANTITY,   required=false,   desc="实际买入数量" )
	private Double buyQuantity;
	
	@Param(value=SELL_PRICE,   required=false,   desc="卖出价格" )
	private Double sellPrice;
	
	@Param(value=SELL_AMOUNT,   required=false,   desc="实际卖出金额" )
	private Double sellAmount;
	
	@Param(value=SELL_QUANTITY,   required=false,   desc="实际卖出数量" )
	private Double sellQuantity;
	//
	@Param(value=TOTAL_BUY_COUNT,   required=false,   desc="总买入笔数" )
	private Integer totalBuyCount;

	@Param(value=TOTAL_BUY_AMOUNT,   required=false,   desc="总买入金额" )
	private Double totalBuyAmount;

	@Param(value=TOTAL_SELL_COUNT,   required=false,   desc="总卖出笔数" )
	private Integer totalSellCount;

	@Param(value=TOTAL_SELL_AMOUNT,   required=false,   desc="总卖出金额" )
	private Double totalSellAmount;
	
	public Long getDetailId() {
		return this.detailId;
	}
	
	public void setDetailId(Long detailId) {
		this.detailId = detailId;
	}
	
	public Long getUserId() {
		return this.userId;
	}
	
	public void setUserId(Long userId) {
		this.userId = userId;
	}
	
	public Long getTypeId() {
		return this.typeId;
	}
	
	public void setTypeId(Long typeId) {
		this.typeId = typeId;
	}
	
	public Long getInvestId() {
		return this.investId;
	}
	
	public void setInvestId(Long investId) {
		this.investId = investId;
	}
	
	public Long getStrategyId() {
		return this.strategyId;
	}
	
	public void setStrategyId(Long strategyId) {
		this.strategyId = strategyId;
	}
	
	public Integer getNum() {
		return this.num;
	}
	
	public void setNum(Integer num) {
		this.num = num;
	}
	
	public Double getGridBuyPrice() {
		return this.gridBuyPrice;
	}
	
	public void setGridBuyPrice(Double gridBuyPrice) {
		this.gridBuyPrice = gridBuyPrice;
	}
	
	public Double getPriceInterval() {
		return this.priceInterval;
	}
	
	public void setPriceInterval(Double priceInterval) {
		this.priceInterval = priceInterval;
	}
	
	public Double getGridSellPrice() {
		return this.gridSellPrice;
	}
	
	public void setGridSellPrice(Double gridSellPrice) {
		this.gridSellPrice = gridSellPrice;
	}
	
	public Double getGridAmount() {
		return this.gridAmount;
	}
	
	public void setGridAmount(Double gridAmount) {
		this.gridAmount = gridAmount;
	}
	
	public Double getGridQuantity() {
		return this.gridQuantity;
	}
	
	public void setGridQuantity(Double gridQuantity) {
		this.gridQuantity = gridQuantity;
	}
	
	public Double getBuyPrice() {
		return this.buyPrice;
	}
	
	public void setBuyPrice(Double buyPrice) {
		this.buyPrice = buyPrice;
	}
	
	public Double getBuyAmount() {
		return this.buyAmount;
	}
	
	public void setBuyAmount(Double buyAmount) {
		this.buyAmount = buyAmount;
	}
	
	public Double getBuyQuantity() {
		return this.buyQuantity;
	}
	
	public void setBuyQuantity(Double buyQuantity) {
		this.buyQuantity = buyQuantity;
	}
	
	public Double getSellPrice() {
		return this.sellPrice;
	}
	
	public void setSellPrice(Double sellPrice) {
		this.sellPrice = sellPrice;
	}
	
	public Double getSellAmount() {
		return this.sellAmount;
	}
	
	public void setSellAmount(Double sellAmount) {
		this.sellAmount = sellAmount;
	}
	
	public Double getSellQuantity() {
		return this.sellQuantity;
	}
	
	public void setSellQuantity(Double sellQuantity) {
		this.sellQuantity = sellQuantity;
	}

	public Integer getTotalBuyCount() {
		return totalBuyCount;
	}

	public void setTotalBuyCount(Integer totalBuyCount) {
		this.totalBuyCount = totalBuyCount;
	}

	public Double getTotalBuyAmount() {
		return totalBuyAmount;
	}

	public void setTotalBuyAmount(Double totalBuyAmount) {
		this.totalBuyAmount = totalBuyAmount;
	}

	public Integer getTotalSellCount() {
		return totalSellCount;
	}

	public void setTotalSellCount(Integer totalSellCount) {
		this.totalSellCount = totalSellCount;
	}

	public Double getTotalSellAmount() {
		return totalSellAmount;
	}

	public void setTotalSellAmount(Double totalSellAmount) {
		this.totalSellAmount = totalSellAmount;
	}
	

}